# -*- coding: utf-8 -*-

'''
PyWAK HTML组件
用于快速加入HTML内容
https://gitee.com/daze456/PyWAK/
'''


def main(body, head=""):
    '''
    生成HTML框架
    body: 必须，除CSS（不支持）和title以外的东西放这里
    head: CSS（不支持）和title放这里
    '''
    return '<!DOCTYPE html>\n<html>\n<head>\n{}\n</head>\n<body>\n{}\n</body>\n</html>'.format(head, body)


def h(src, t=1):
    '''
    放置标题
    src: 内容，必须
    t: 大小，最大值为6，最小值为1，数字越大字越小
    '''
    return "<h{1}>{0}</h{1}>".format(src, str(t))


def p(src):
    '''
    放置段落
    src: 内容，必须
    '''
    return "<p>{0}</p>".format(src)


def a(text, url="/"):
    '''
    放置超链接
    text: 文字，必须
    url: 链接，默认会前往首页
    '''
    return '<a href="{0}">{1}</a>'.format(url, text)


def li(src):
    '''
    列表项
    src: 内容，必须
    '''
    return "<li>{0}</li>".format(src)


def pli(src, url=None, root="/"):
    '''
    Python列表转HTML列表,支持链接
    src: Python列表，必须
    url: Python列表，项目链接，和根链接拼接，请一一对应
    root: 根链接，默认为首页
    '''
    for x in range(len(src)):
        if x == 0:
            fs = src[x]
            if url:
                fs = '<a href="{1}{0}/">{2}</a>'.format(
                    url[x], root, fs)
            s = "<li>{0}</li>".format(fs)
        else:
            fs = src[x]
            if url:
                fs = '<a href="{1}{0}/">{2}</a>'.format(
                    url[x], root, fs)
            s = "{1}\n<li>{0}</li>".format(fs,s)
    return s


def lst(src, t="ul"):
    '''
    列表
    src: HTML列表，就是内容为一堆li的多行变量，必须
    t: 类型，ul无序ol有序
    '''
    return "<{1}>\n{0}\n</{1}>".format(src, t)


def img(src, height=None, width=None, ext=""):
    '''
    图片
    src: 图片资源，必须
    height: 高，支持百分比和像素
    width: 宽，支持百分比和像素
    ext: 保留供高级用户使用
    '''
    if height == width == None:
        return '<{2} src="{0}"{1}>'.format(src, ext, "img")
    elif height:
        return '<{2} src="{0}" height="{3}"{1}>'.format(src, ext, "img", height)
    elif width:
        return '<{2} src="{0}" width="{3}"{1}>'.format(src, ext, "img", width)
    else:
        return '<{2} src="{0}" height="{3}" width="{4}"{1}>'.format(src, ext, "img", height, width)


def iv(src, t=1, height=None, width=None, ext=""):
    '''
    iframe+video，框架加视频
    t: 类型，1框架2视频
    src: 资源，必须
    height: 高，支持百分比和像素
    width: 宽，支持百分比和像素
    ext: 保留供高级用户使用
    '''
    t = str(t)
    if t == "1":
        t = "iframe"
    elif t == "2":
        t = "video"
    if height == width == None:
        return '<{2} src="{0}"{1}></{2}>'.format(src, ext, t)
    elif height:
        if width:
            return '<{2} src="{0}" height="{3}" width="{4}"{1}></{2}>'.format(src, ext, t, height, width)
        else:
            return '<{2} src="{0}" height="{3}"{1}></{2}>'.format(src, ext, t, height)
    elif width:
        return '<{2} src="{0}" width="{3}"{1}></{2}>'.format(src, ext, t, width)


def audio(src, ext=""):
    '''
    音频
    src: 音频资源，必须
    ext: 保留供高级用户使用
    '''
    return '<audio src="{0}"{1}></audio>'.format(src, ext)


def title(src):
    '''
    标题
    src: 文本
    注: 此项目需要放在head里
    '''
    return "<title>{0}</title>".format(src)
